yamato1945
22.7.2019, 16:10
Уважаемые коллеги !
Не случалось ли кому подключать счетчики тепла Apator LQM III Elf к системе диспетчеризации через
конвертер ADFWeb M-Bus to Modbus converter HD67044-B2 ?
Конкретно интересует вопрос как вытащить текущий показатель количества тепловой энергии в сеть MODBUS через указанный
конвертер, используя интерфейс M-BUS счетчика .
Все остальные параметры (температура, объем, мощность и тп) вытащить удалось, а для количества тепловой энергии нужна какая-то странная нестандартная конфигурация.
Буду рад любому совету, заранее благодарен ...
manjey73
22.7.2019, 20:49
Таки счетчики можно читать без конвертеров от данных товарищей... просто Scada системой, если написать драйвер... правда я год мучался, и сделал только под свои два прибора.
в M-Bus есть нестандартные для протокола вещи, например переменная может быть указана "безразмерная" - как бы она таковой не является, просто производитель сам должен указать размерность. То есть сам протокол не имеет описания на переменную, она полностью на совести производителя прибора.
можете скинуть все телеграммы, которые вы с него получаете в hex виде для проверки ?
yamato1945
23.7.2019, 10:33
Цитата(manjey73 @ 22.7.2019, 20:49)

Таки счетчики можно читать без конвертеров от данных товарищей... просто Scada системой, если написать драйвер... правда я год мучался, и сделал только под свои два прибора.
в M-Bus есть нестандартные для протокола вещи, например переменная может быть указана "безразмерная" - как бы она таковой не является, просто производитель сам должен указать размерность. То есть сам протокол не имеет описания на переменную, она полностью на совести производителя прибора.
можете скинуть все телеграммы, которые вы с него получаете в hex виде для проверки ?
Не, мне надо через ADFWeb Converter в MODBUS TCP/IP. Скорее всего да, там нестандартный тип данных, но ADFWeb Analyzer их видит, но перевести в MODBUS не может (?) почему-то. Там нестандартный VIF, говорит : VIF is in ASCII. Понять бы что это такое ...
ЗЫ. Спасибо за отклик
manjey73
23.7.2019, 11:36
Если говорит что ASCII то значит это строковая переменная (предположительно). Тип переменной то стандартный, просто его сам adfweb может не понимает. А у строк в M-bus может быть любая длина в пределах пакета.
Я почему и просил телеграмму, чтобы проверить в программе, ругнется или нет, ну и хотя бы ручками попробовать понять что там.
з.ы. строковые я не разбирал пока, не попалось у меня в протоколе на моих приборах...
Интересно как он вам строковую переменную переведет в Modbus не имея расширенных наборов функций.
yamato1945
23.7.2019, 11:50
Цитата(manjey73 @ 23.7.2019, 11:36)

Если говорит что ASCII то значит это строковая переменная (предположительно). Тип переменной то стандартный, просто его сам adfweb может не понимает. А у строк в M-bus может быть любая длина в пределах пакета.
Я почему и просил телеграмму, чтобы проверить в программе, ругнется или нет, ну и хотя бы ручками попробовать понять что там.
з.ы. строковые я не разбирал пока, не попалось у меня в протоколе на моих приборах...
Интересно как он вам строковую переменную переведет в Modbus не имея расширенных наборов функций.
Ну, он же говорит "VIF in ASCII string", я так понимаю, VIF задает "тип" переменных ?
manjey73
23.7.2019, 12:50
Не совсем так, DIF и VIF описывают полученные переменные, а не задают.
От будет весело, если в виде строки там число, типа 0.25 в ascii это 30 2E 32 35
Ну или BCD формат будет, что ваш adfweb сможет ?
з.ы. лог полученной телеграммы в hex у вас есть ? иначе гадать можно долго и нудно на кофейной гущи с этим протоколом. Хоть руками его разобрать и понять что есть что.
yamato1945
23.7.2019, 13:48
Цитата(manjey73 @ 23.7.2019, 12:50)

Не совсем так, DIF и VIF описывают полученные переменные, а не задают.
От будет весело, если в виде строки там число, типа 0.25 в ascii это 30 2E 32 35
Ну или BCD формат будет, что ваш adfweb сможет ?
з.ы. лог полученной телеграммы в hex у вас есть ? иначе гадать можно долго и нудно на кофейной гущи с этим протоколом. Хоть руками его разобрать и понять что есть что.
Взгляните, пожалуйста, на картинку с ADFWeb Analyzer :
https://dropmefiles.com/fgPaf
manjey73
23.7.2019, 14:21
Так вам же русским языком написали - 12 символов BCD поле данных
значение 727301010000
Ну и про степень там 10 в -1
Опять же, я так понимаю, вы можете не использовать это значение, сняв галочку.
А в Modbus вы можете только значение Value передать ?, указать на другое поле никак ? просто не общался с adfweb в рамках M-Bus и после общения с их SNMP-Modbus даже не хочется...
manjey73
23.7.2019, 14:45
Multiplicative correction factor в степени 10nnn-6, смотрите как первые три бита VIFE (75h) преобразовать в степень. Где-то это в документации есть.
А, ну собственно это и есть 10 в минус 1 степени, то есть число надо на 10 поделить всего.
72730101000,0 - вот это будет значением переменной rs
yamato1945
23.7.2019, 15:04
Цитата(manjey73 @ 23.7.2019, 14:45)

Multiplicative correction factor в степени 10nnn-6, смотрите как первые три бита VIFE (75h) преобразовать в степень. Где-то это в документации есть.
А, ну собственно это и есть 10 в минус 1 степени, то есть число надо на 10 поделить всего.
72730101000,0 - вот это будет значением переменной rs
В том то же и дело, что я не могу ничего получить в MODBUS регистре ! Если бы я хоть что-то получил, я бы уж как-то его преобразовал, но там постоянно - 0 .
Взгляните, пожалуйста, как импортировал эту переменную в проект сам ADFWeb Analyzer :
https://dropmefiles.com/gTbNxВот такой он её считает, но всё равно, ничего не считывается, кроме 0.
PS. Вы не знаете, что может обозначать "VIF ASCII String" параметр ? Возможно в нём всё дело
manjey73
23.7.2019, 15:16
Ну так его же надо сделать From BCD to Integer наверное.
Вот что касается работы с adfweb я вам ничем не помогу, ибо я его не знаю. Может его плющит на данной переменной, что-то не допилено и т.д.
Кстати там, где вы покупали его можете запросить в техподдержке, они переправят вопрос со скринами иностранцам и они может быть что-то вразумительное ответят...
я не вижу, где у вас VIF ASCII String
yamato1945
23.7.2019, 15:58
Цитата(manjey73 @ 23.7.2019, 15:16)

Ну так его же надо сделать From BCD to Integer наверное.
Вот что касается работы с adfweb я вам ничем не помогу, ибо я его не знаю. Может его плющит на данной переменной, что-то не допилено и т.д.
Кстати там, где вы покупали его можете запросить в техподдержке, они переправят вопрос со скринами иностранцам и они может быть что-то вразумительное ответят...
я не вижу, где у вас VIF ASCII String
Ну, я делал все возможные преобразования, какие только можно придумать, в надежде хоть что-то получить

Type = Vif in following string
manjey73
23.7.2019, 16:19
Type = Vif in following string
Ну далее то описан формат - 12 цифр BCD с множителем 0.1
Вот по данной проблеме и пишите в техподдержку, с какого ? ну или если переменная не так важна, просто отключите ее.
yamato1945
23.7.2019, 16:22
Цитата(manjey73 @ 23.7.2019, 16:19)

Type = Vif in following string
Ну далее то описан формат - 12 цифр BCD с множителем 0.1
Вот по данной проблеме и пишите в техподдержку, с какого ? ну или если переменная не так важна, просто отключите ее.
Щас буду пытаться

Спасибо Вам большое что откликнулись
manjey73
23.7.2019, 16:52
Та нема за шо. Вообще когда-то думал что M-Bus идиотский протокол, но когда столкнулся с Логикой, то понял что ошибался.... чуть-чуть. Эти вааще превзошли все ожидания
yamato1945
29.7.2019, 13:46
Ну, решение найдено.
Если, вдруг, кому-нибудь понадобится :
Для контроля "Количество теплоты" в шлюзе ADFWeb HD67044-B2 нужно прописать :
1. M-Bus Access->"Имя точки"->Type of Data = Vif is in ASCII
2. M-Bus Access->"Имя точки"->VIF ASCII String = kcal
3. Отметить птицей M-Bus Access->"Имя точки"->Convert in float
Получаем значение в КИЛОКАЛОРИЯХ
manjey73
29.7.2019, 14:05
yamato1945 хм, очень странно, или это типа шлюз неправильно воспринял часть данных и указал что они 12BCD ?
Просто BCD формат это далеко не ASCII.
Это то, что техподдержка вам посоветовала и оно сработало ?
yamato1945
29.7.2019, 20:22
Цитата(manjey73 @ 29.7.2019, 14:05)

yamato1945 хм, очень странно, или это типа шлюз неправильно воспринял часть данных и указал что они 12BCD ?
Просто BCD формат это далеко не ASCII.
Это то, что техподдержка вам посоветовала и оно сработало ?
Это из представительства Apator прислали, хмм, "файлы с особенностями реализации протокола M-Bus для счетчиков".
Хотите, Вам пришлю, токо завтра, с другого компа ?
PS. Я не очень-то хорошо знаю протокол M-Bus (мягко говоря

). Чисто для себя, для простоты, я представляю себе это значение "kcal" как начало области, где начинаются эти самые BCD-данные
manjey73
29.7.2019, 23:43
Более точно можно было посмотреть по телеграмме из прибора и сверившись с документацией на протокол.
Но для этого надо иметь конвертер USB - MBus, например китайцы продают до 3-5 устройств при питании от USB.
Повесить его на линию ну и снифером порта посмотреть
Ну или другими утилитами какими-то посмотреть.
Вот если бы вы мне такую телеграмму прислали, мне было бы интересно. Так как я не все плюшки протокола в драйвере реализовал. А покупать приборы в поиске нереализованного как-то накладно.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.